So far, our examples used a small
team of individuals working together. Since it's a small team, all members of
the remote git repository had the right permissions to push
their changes right in. However, this isn't always the case. There are thousands of open source
projects on GitHub with millions of contributors contributing to them. All of these contributors are not members
of these projects with write permissions. We don't want just anyone to be
able to modify our code, of course. So how do you create a pull request if
you're not part of the git project and therefore not allowed to create
branches or push your changes right in? One way to contribute to such projects
is to first fork the main project. After forking the project, you can add your changes to
a branch on the forked copy and send a pull request to the original
project to merge your changes right in. When you fork a Git repository, you're creating your own copy
of the original project. You're free to experiment with it and
do whatever you want to do with the repository without
impacting the original project. Once you think that you have something
to contribute to the original project, you can create a pull request safely. The reviewers of the original project
can now review the changes submitted by you and give feedback to you if required. Once your pr has been
approved by the maintainers, they can merge your changes
into the original repository. You've now successfully contributed
to an open source project.